<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // 数组的拓展方法  => 官方封装的操作数组的方法

    // 学习数组的拓展方法需要注意哪些问题?
    // 1. 记住方法的作用
    // 2. 方法的返回值
    // 3. 是否影响原数组  => (1. 有些方法 直接操作原数组  2. 有些方法 根据原数组 得到新数组)

    // 数组的增删改查
    
    // splice()  任意位置增删改
        
    // 删除
    // splice(startIndex,n)    从下标为startIndex的位置开始 删除n个元素
    // 返回值: 被删除的元素形成的新数组
    // 是否影响原数组 : 是
    var arr = [2,8,4,6,5,7,9,3,1];
    // var result = arr.splice(2,4);
    // console.log(result);
    // console.log(arr);

    // 新增
    // splice(startIndex,0,arg1,arg2...argN)    从下标为startIndex的位置开始 删除0个元素,在新增一个或多个元素(从第三参数开始 都是新增的元素)
    // 返回值: 被删除的元素形成的新数组  => 没有删 []
    // 是否影响原数组 : 是

    // var arr = [2,8,4,6,5,7,9,3,1];
    // var result = arr.splice(2,0,"a","b","c");
    // console.log(result);
    // console.log(arr);

    // 修改
    // splice(startIndex,n,arg1,arg2...argN)    从下标为startIndex的位置开始 删除n个元素,在新增一个或多个元素(从第三参数开始 都是新增的元素)
    // 返回值: 被删除的元素形成的新数组
    // 是否影响原数组 : 是

    // var arr = [2,8,4,6,5,7,9,3,1];
    // var result = arr.splice(2,3,"a","b","c");
    // console.log(result);
    // console.log(arr);


    // 查找 判断数组中是否存在某个元素?   => 模拟封装
    var arr = [2,8,4,6,5,7,4,9,3,1];  
    console.log(arr);

    // includes() 判断数组中是否存在某个元素 (ES6 新增)
    // 返回值: 存在:true 不存在:false
    // 是否影响原数组:  不影响

    // var result = arr.includes(1);
    // var result = arr.includes("1");
    // console.log(result);
    // console.log(arr);

    // indexOf()  返回某个元素在数组中第一次出现的位置 
    // 返回值: 有该元素 就返回下标,否则返回-1
    // 是否影响原数组:  不影响
    var result = arr.indexOf(4);    // 2
    var result = arr.indexOf("4");  // -1
    console.log(result);

    // indexOf() 也可以用于判断是否存在 某个元素
    // 存在 index >= 0  index != -1 
    // 不存在  index == -1

</script>
</html>